home *** CD-ROM | disk | FTP | other *** search
/ CD-ROM Interactive 1 / CD-Rom Interactive (magazine) coverdisc (Disc 1, October, 1994).iso / QT / SETUP.MST < prev    next >
Text File  |  1994-07-18  |  18KB  |  501 lines

  1.  
  2. rem ---------------------------------------------------------------------
  3. rem
  4. rem SETUP.MST    - MSSETUP Installation Script
  5. rem
  6. rem                Version 1.0
  7. rem
  8. rem                (c) 1988-1992 Apple Computer, Inc. All Rights Reserved.
  9. rem
  10. rem ---------------------------------------------------------------------
  11.  
  12. rem ---------------------------------------------------------------------
  13. rem
  14. rem Adapted slightly for the DK Sampler Disc setup, to avoid (c) infringement
  15. rem and to avoid supporting things DK doesn't support (e.g. French).
  16. rem
  17. rem ---------------------------------------------------------------------
  18.  
  19.  
  20. rem Required includes to interface with MSSETUP DLL's
  21. rem -------------------------------------------------
  22. '$INCLUDE 'setupapi.inc'
  23. '$INCLUDE 'msdetect.inc'
  24.  
  25.  
  26. rem Dialog box id's
  27. rem ---------------
  28. rem Note: If MSSETUP were really smart, we could use the
  29. rem #defines in DIALOGS.HR. Instead, we must manually
  30. rem keep them in step
  31. rem ----------------------------------------------------
  32.     CONST DESTPATH      = 300          ''Gets destination path
  33.     CONST EXITQUIT      = 600          ''Exits on user request
  34.     CONST EXITSUCCESS   = 700          ''Exits when install is done
  35.     CONST OPTIONS       = 800          ''Gets AUTOEXEC.BAT options
  36.     CONST ASKSETUP      = 1100         ''Gets installation type (Local etc)
  37.     CONST TOOBIG        = 6300         ''Not enough space on target disk error
  38.     CONST BADPATH       = 6400         ''Bad destination path error
  39.     CONST BADWINDOWS    = 6500         ''Wrong Windows release
  40.     CONST EXITFAILURE   = 6600         ''Exits on error
  41.  
  42.  
  43. rem String id's
  44. rem -----------
  45. rem Note: If MSSETUP were really smart, we could use the
  46. rem #defines in DIALOGS.HR. Instead, we must manually
  47. rem keep them in step
  48. rem ----------------------------------------------------
  49.     CONST STR_PLAYER    = 1024         ''Movie Player
  50.     CONST STR_VIEWER    = 1025         ''Picture Viewer
  51.     CONST STR_GROUP     = 1026         ''Program Manager group
  52.     CONST STR_TITLE     = 1027         ''Installer Title
  53.     CONST STR_MSG1      = 1028         ''Version error message part 1
  54.     CONST STR_MSG2      = 1029         ''Version error message part 2
  55.     CONST STR_MSG3      = 1030         ''Remove obsolete files?
  56.     CONST STR_WARNING   = 1031         ''Warning
  57.     CONST STR_HELP      = 1032         ''Help
  58.  
  59.  
  60. rem Miscellaneous Constants
  61. rem -----------------------
  62.     CONST NOLOGO = 1                   ''Dummy NULL bitmap (must be 1)
  63.     CONST LOGO = 2                     ''Background bitmap
  64.     CONST MOVIE = 2                    ''Movie placeholder bitmap
  65.     CONST NOSPACE = 1                  ''No space to complete install
  66.     CONST INSTALLOK = 2                ''Install completed OK
  67.     CONST INSTALLFAILED =3             ''Install failed for some reason
  68.  
  69.  
  70. rem Global Variables
  71. rem ----------------
  72.     GLOBAL SOURCE$                     ''Source directory
  73.     GLOBAL DEST$                       ''Default destination directory
  74.     GLOBAL SETUPTYPE$                  ''Setup type (Local, Client, Server)
  75.     GLOBAL LOCALINST$                  ''Local install
  76.     GLOBAL CLIENTINST$                 ''Client install
  77.     GLOBAL SERVERINST$                 ''Server install
  78.     GLOBAL MODAUTOEXECOPT$             ''Modify AUTOEXEC.BAT option
  79.     GLOBAL MODAUTOEXEC$                ''Modify AUTOEXEC.BAT
  80.     GLOBAL COPYAUTOEXEC$               ''Copy AUTOEXEC.BAT and modify it
  81.     GLOBAL CUIDLL$                     ''User interface DLL
  82.     GLOBAL SETUPPATH$                  ''Setup destination path
  83.     GLOBAL HELPPROC$                   ''Help dialog procedure
  84.     GLOBAL EXTRACOSTS$                 ''List of extra costs to add per drive
  85.     GLOBAL APPNEEDS$                   ''Disk space costs per drive
  86.     GLOBAL SECTIONKEY$                 ''INF file section key
  87.     GLOBAL SUCCESS%                    ''Installation completion code
  88.  
  89.  
  90. rem Initialize global vriables
  91. rem --------------------------
  92.     LOCALINST$      = "1"
  93.     CLIENTINST$     = "2"
  94.     SERVERINST$     = "3"
  95.     MODAUTOEXEC$    = "1"
  96.     COPYAUTOEXEC$   = "2"
  97.     SETUPPATH$      = "C:\QTW"
  98.     SETUPTYPE$      = LOCALINST$
  99.     SOURCE$         = GetSymbolValue("STF_SRCDIR")
  100.     DEST$           = SETUPPATH$
  101.     MODAUTOEXECOPT$ = MODAUTOEXEC$
  102.     SUCCESS%        = INSTALLFAILED
  103.     EXTRACOSTS$     = "ExtraCosts"
  104.     APPNEEDS$       = "AppNeeds"
  105.     SECTIONKEY$     = "SectionKey"
  106.  
  107.     FOR i% = 1 TO 26 STEP 1
  108.         AddListItem EXTRACOSTS$, "16384"
  109.     NEXT i%
  110.  
  111.  
  112. rem Get name of localized user interface dialogs
  113. rem --------------------------------------------
  114. rem    CUIDLL$ = "SETUP"+GetIniKeyString("WIN.INI", "intl", "sLanguage")+".DLL"
  115. rem    IF DoesFileExist(CUIDLL$, femExists) = 0 THEN
  116.        CUIDLL$ = "SETUPENU.DLL"
  117. rem    END IF
  118.  
  119.  
  120. rem Subroutines and Functions
  121. rem -------------------------
  122.     DECLARE FUNCTION Install AS INTEGER
  123.     DECLARE FUNCTION MakePath (szDir$, szFile$) AS STRING
  124.     DECLARE FUNCTION GetQTWVersion LIB "setupenu.dll" (szDLL$) AS INTEGER
  125.     DECLARE FUNCTION GetResourceString LIB "setupenu.dll" (szResource$, idString%) AS INTEGER
  126.     DECLARE FUNCTION StartCustomSetup LIB "setupenu.dll" (hinst%, hwnd%) AS INTEGER
  127.     DECLARE FUNCTION StopCustomSetup LIB "setupenu.dll" (hinst%, hwnd%) AS INTEGER
  128.     DECLARE FUNCTION UpdateAutoExecBat LIB "setupenu.dll" (szIn$, szOut$, szDest$) AS INTEGER
  129.     DECLARE FUNCTION WritePrivateProfileString LIB "krnl386.exe" (szSect$, szEntry$, szString$, szINI$) AS INTEGER
  130.  
  131.  
  132. rem Initialize custom setup logic
  133. rem -----------------------------
  134.     SetBitmap CUIDLL$, NOLOGO
  135.     i% = GetResourceString (CUIDLL$, STR_TITLE)
  136.     SetTitle GetSymbolValue ("ResourceString")
  137.     i% = StartCustomSetup (HinstFrame(), HwndFrame ())
  138.     i% = SetBeepingMode(1)
  139.  
  140.  
  141. rem Make sure that we are running on Windows 3.1 or better
  142. rem ------------------------------------------------------
  143.     IF GetWindowsMajorVersion() < 3 THEN
  144.        sz$ = UIStartDlg(CUIDLL$, BADWINDOWS, "FInfo0DlgProc", 0, "")
  145.        UIPop 1
  146.        GOTO CLEANUP
  147.     END IF
  148.  
  149.     IF (GetWindowsMajorVersion() = 3) AND (GetWindowsMinorVersion() < 10) THEN
  150.        sz$ = UIStartDlg(CUIDLL$, BADWINDOWS, "FInfo0DlgProc", 0, "")
  151.        UIPop 1
  152.        GOTO CLEANUP
  153.     END IF
  154.  
  155.  
  156. rem Make sure that we are running on a 286 or better
  157. rem ------------------------------------------------
  158.     IF GetWinFlags() AND 2 THEN
  159.        sz$ = UIStartDlg(CUIDLL$, BADWINDOWS, "FInfo0DlgProc", 0, "")
  160.        UIPop 1
  161.        GOTO CLEANUP
  162.     END IF
  163.  
  164.  
  165. rem Find and read the .INF file. We'll use DISKETTE.INF when installing
  166. rem from drive A: or B:, CD.INF otherwise.
  167. rem -------------------------------------------------------------------
  168.     szInf$ = GetSymbolValue("STF_SRCINFPATH")
  169.  
  170.     IF szInf$ = "" THEN
  171.        szTemp$ = GetSymbolValue("STF_SRCDIR")
  172.        SPLITPATH szTemp$, drv$, dir$, filename$, ext$
  173. rem       IF (drv$ = "A:") OR (drv$ = "B:") THEN
  174. rem          szInf$ = szTemp$ + "DISKETTE.INF"
  175. rem       ELSE
  176.           szInf$ = szTemp$ + "CD.INF"
  177.     END IF
  178.  
  179.     ReadInfFile szInf$
  180.  
  181.  
  182. rem Get the setup type: Local, Client or Server
  183. rem -------------------------------------------
  184. ITYPE:
  185.     SetSymbolValue "RadioDefault", SETUPTYPE$
  186.  
  187. ITYPEL1:
  188.     sz$ = UIStartDlg(CUIDLL$, ASKSETUP, "FRadioDlgProc", 0, "")
  189.  
  190.     SETUPTYPE$ = GetSymbolValue("ButtonChecked")
  191.  
  192.     IF sz$ = "CONTINUE" THEN
  193.        UIPop(1)
  194.  
  195.     ELSEIF sz$ = "REACTIVATE" THEN
  196.        GOTO ITYPEL1
  197.  
  198.     ELSE
  199.        GOSUB ASKQUIT
  200.        GOTO ITYPE
  201.  
  202.     END IF
  203.  
  204.  
  205. rem Get the AUTOEXEC.BAT modification option
  206. rem ----------------------------------------
  207. OPTIONC:
  208.     IF SETUPTYPE$ = SERVERINST$ THEN
  209.        GOTO GETPATH
  210.     END IF
  211.  
  212.     SetSymbolValue "RadioDefault", MODAUTOEXECOPT$
  213.  
  214. OPTL1:
  215.     sz$ = UIStartDlg(CUIDLL$, OPTIONS, "FRadioDlgProc", 0, "")
  216.  
  217.     MODAUTOEXECOPT$ = GetSymbolValue("ButtonChecked")
  218.  
  219.     IF sz$ = "CONTINUE" THEN
  220.        UIPop(1)
  221.  
  222.     ELSEIF sz$ = "REACTIVATE" THEN
  223.        GOTO OPTL1
  224.  
  225.     ELSEIF sz$ = "BACK" THEN
  226.        UIPop